<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="box"></div>
    <script>
      const students = [
        {
          name: "张三",
          birthday: "2000-03-12 12:12:12",
          sex: "男",
          height: "175cm",
          weight: "60kg",
        },
        {
          name: "李四",
          birthday: "2001-02-15 15:15:15",
          sex: "男",
          height: "172cm",
          weight: "117g",
        },
        {
          name: "王五",
          birthday: "1999-12-16 16:16:16",
          sex: "男",
          height: "178cm",
          weight: "62kg",
        },
        {
          name: "老6",
          birthday: "2002-02-12 12:12:12",
          sex: "男",
          height: "169cm",
          weight: "55kg",
        },
        {
          name: "小七",
          birthday: "2000-11-2 2:2:2",
          sex: "女",
          height: "165cm",
          weight: "105g",
        },
        {
          name: "朱八",
          birthday: "2001-06-12 6:6:6",
          sex: "男",
          height: "175cm",
          weight: "60kg",
        },
        {
          name: "九妹",
          birthday: "2000-01-12",
          sex: "女",
          height: "158cm",
          weight: "46kg",
        },
      ];
      // 1. 找出数组中 最大的年龄和最小的年龄 的名字打印出名字和年龄 （14）
      //   function findMaxAge(students) {
      //     students = students.map((item, index) => {
      //       return {
      //         ...item,
      //         year: new Date(item.birthday).getFullYear(),
      //       };
      //     });
      //     students.sort((a, b) => {
      //       return a.year - b.year;
      //     });
      //     console.log(students);
      // let max = 0,
      //   min = -1,
      //   maxName,
      //   minName;
      // students.forEach((currentItem) => {
      //   let date = new Date(currentItem.birthday);
      //   let year = date.getFullYear();
      //   let nowYear = new Date().getFullYear();
      //   let age = nowYear - year;
      //   if (age > max) {
      //     max = age;
      //     maxName = currentItem.name;
      //   }
      //   if (min == -1) {
      //     min = age;
      //     minName = currentItem.name;
      //   } else if (age < min) {
      //     min = age;
      //     minName = currentItem.name;
      //   }
      // });
      // console.log(maxName, minName);
      // }
      //   findMaxAge(students);
      // 2. 下列数组按照年龄排序打印出名字和年龄 （14）
      // 3. 统计数组中男生女生各多少人数（14）
      //   console.log(students.filter((item) => item.sex == "男").length);
      //   console.log(students.filter((item) => item.sex == "女").length);
      // 4. 统计数组中身高大于170的人数（14）
      //   let arr = students.map((item) => {
      //     return {
      //       ...item,
      //       h: parseInt(item.height),
      //     };
      //   });
      //   let res = arr.filter((item) => item.h > 170);
      //   console.log(res);
      // 5. 使用正则表达式将数组中体重是g单位的转换为kg 打印出数组（14）
      //   let reg = /^(\d+)g$/;
      //   let res = students.map((item, index) => {
      //     return {
      //       ...item,
      //       weight: item.weight.replace(reg, function () {
      //         return arguments[1] / 2 + "kg";
      //       }),
      //     };
      //   });
      //   res.sort((a, b) => {
      //     return parseInt(a.weight) - parseInt(b.weight);
      //   });
      //   console.log(res);

      // 6. 将数组按照体重进行排序，输出名字和相对应的体重 从低到高（14）

      // 7. 实现随机点名功能 每次随机输出一个名字（14）
      //   function getRandomNum(min, max) {
      //     return Math.floor(Math.random() * (max - min + 1) + min);
      //   }
      //   let num = getRandomNum(0, students.length - 1);
      //   console.log(students[num].name);

      //   使用正则表达式将数组中体重是g单位的转换为kg 打印出数组（14）

      let res = students.map((item) => {
        return {
          ...item,
          weight: fun(item.weight),
        };
      });
      function fun(str) {
        let reg = /^(\d+)g$/;
        let res = str.replace(reg, function () {
          return arguments[1] / 2 + "kg";
        });
        return res;
      }
      // * 注： 不可在原数组上直接手动修改数据
      // * 满分100分 7*14==98 剩余2分看心情给
    </script>
  </body>
</html>
